Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

220
Views
Recibo el error "Las pestañas no se pueden editar en este momento (el usuario puede estar arrastrando una pestaña)" en el evento de actualización/activación/enfoque de pestaña en Chrome 91

Después de la actualización reciente de Chrome, mi extensión comenzó a activar "Unchecked runtime.lastError: las pestañas no se pueden editar en este momento (el usuario puede estar arrastrando una pestaña)" cuando intento usar la API de chrome.tabs. Todavía no hay mucha información sobre este problema, pero creo que se trata de un error del navegador. Mientras tanto, mi extensión hace que las pestañas de Chrome cambien notablemente más lento de lo que solía ser. Ahora toma un par de segundos cambiar la pestaña. Así que estoy buscando una solución.

Alguna idea de cómo solucionar este problema?

over 4 years ago · Santiago Trujillo
5 answers
Answer question

0

La única solución que he encontrado hasta ahora es poner a mis controladores en un tiempo de espera como este:

 chrome.tabs.onActivated.addListener((activeInfo) => { setTimeout(() => { // The old listener handler moves here }, 100); });

Pero debe haber una mejor manera, ¿verdad?

over 4 years ago · Santiago Trujillo Report

0

Seguirá recibiendo errores, pero al menos funcionará.

 chrome.tabs.onActivated.addListener(function(activeInfo) {getActivatedTab();}); function getActivatedTab(){ chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, function (tabs) { try{ if(tabs[0]!=undefined){ console.log(tabs[0].url); } } catch(err){ setTimeout(function() { getActivatedTab(); },100); } }) }
over 4 years ago · Santiago Trujillo Report

0

Este es un error en Chrome91, como lo señaló @wOxxOm.

Se sugiere este parche si está haciendo muchas llamadas a, por ejemplo xchrome.tabs.query

 const ChromeWrapper = { chromeTabsQuery: function (params, callback) { chrome.tabs.query(params, tabs => { if (chrome.runtime.lastError) { setTimeout(function () { //console.warn("Patch for xchrome.tabs.query (Chrome 91)."); ChromeWrapper.chromeTabsQuery(params, callback) }, 100); // arbitrary delay } else { callback(tabs) } }) } }

Y luego, simplemente reemplace las instancias de

 xchrome.tabs.query(...

con:

 ChromeWrapper.chromeTabsQuery(...
over 4 years ago · Santiago Trujillo Report

0

... Muy bien, no tengo una solución realmente mejor que setTimeout, ya que realmente no veo dónde se publican los mensajes/eventos después de que se completó la pestaña, así que lo que hago también es agregar un setTimeout para hacer algo " prueba y error".

Pero cómo lo hago es anular el chrome.tabs.get original para que podamos tener la misma experiencia mientras lo usamos de la manera esperada. (Y eliminar fácilmente este fragmento cuando finalmente lo arreglen algún día)

Aquí está mi código, saludos

 chrome.tabs.get = function () { const orig_get = chrome.tabs.get.bind(chrome.tabs); return async function (tabId) { return new Promise( resolve => { var tryGet = () => { orig_get(tabId) .then(resolve) .catch(() => { // console.log("retry get"); setTimeout(() => { tryGet(tabId); }, 50); }) }; tryGet(); } ) } }();
over 4 years ago · Santiago Trujillo Report

0

cree una función separada fuera de chrome.tabs.onActivated.addListener. de esta manera funciona para mí.

 function insertScript(tab) { chrome.tabs.get(tab.tabId, function (info) { console.log(info); }); } chrome.tabs.onActivated.addListener(function (tab) { setTimeout(function () { insertScript(tab); }, 500); });
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!